import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

import {AppRoutingModule} from './app-routing.module';
import {AppComponent} from './app.component';
import {HttpClientModule} from '@angular/common/http';
import {ProductService} from './service/product.service';
import {TopComponent} from './common/top/top.component';
import {BottomComponent} from './common/bottom/bottom.component';
import {ErrorComponent} from './common/error/error.component';
import {MainComponent} from './main/main.component';
import {CategoryComponent} from './category/category.component';
import {ManagerIndexComponent} from './manager/manager-index/manager-index.component';
import {ManagerTopComponent} from './manager/manager-top/manager-top.component';
import {ManagerSideNavComponent} from './manager/manager-side-nav/manager-side-nav.component';
import {ManagerProductComponent} from './manager/manager-product/manager-product.component';
import {ManagerUserComponent} from './manager/manager-user/manager-user.component';
import {ManagerOrderComponent} from './manager/manager-order/manager-order.component';
import {DropDownComponent} from './common/drop-down/drop-down.component'
import {NgOptimizedImage} from "@angular/common";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import { DialogBoxComponent } from './common/dialog-box/dialog-box.component';
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
import {MatFormField} from "@angular/material/form-field";
import {MatAutocomplete, MatAutocompleteTrigger, MatOption} from "@angular/material/autocomplete";
import {MatInput} from "@angular/material/input";
import { UserCardComponent } from './common/user-card/user-card.component';

@NgModule({
    declarations: [
        AppComponent,
        ManagerIndexComponent,
        ManagerTopComponent,
        ManagerSideNavComponent,
        ManagerProductComponent,
        ManagerUserComponent,
        ManagerOrderComponent,
        DialogBoxComponent,
        DropDownComponent,
        UserCardComponent,
    ],
    imports: [
        BrowserModule,
        AppRoutingModule,
        TopComponent,
        BottomComponent,
        ErrorComponent,
        MainComponent,
        CategoryComponent,
        HttpClientModule,
        NgOptimizedImage,
        BrowserAnimationsModule,
        FormsModule,
        MatFormField,
        MatAutocomplete,
        MatOption,
        ReactiveFormsModule,
        MatInput,
        MatAutocompleteTrigger
    ],
    providers: [ProductService, provideAnimationsAsync()],
    bootstrap: [AppComponent],
})
export class AppModule {
}
